#ifndef __LINKLIST_H__
#define __LINKLIST_H__

typedef void linkList;
#define null NULL

typedef struct _tag_linklistNode
{
    struct _tag_linklistNode *next;
} LinkListNode;

typedef struct _tag_linkList
{
    LinkListNode header;
    int length;
} TlinkList;

typedef struct __func_linklist
{
    linkList *(*create)(void);
    int (*destory)(linkList **list);
    int (*clear)(linkList *list);
    int (*length)(linkList *list);
    int (*insert)(linkList *list, LinkListNode *node, int pos); // 在链表的某个位置插入节点
    LinkListNode *(*getNode)(linkList *list, int pos);          //获取某一个位置的节点
    LinkListNode *(*delete)(linkList *list, int pos);           // 删除某个位置的节点
} func_linklist;

extern func_linklist flinklist;

#endif
